package com.dylan.历史.java8.lambda表达式.练习题;

import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.function.Consumer;
import java.util.function.Predicate;

/**
 * Created by Dylan on 2018/7/19.
 *
 * 编写一个继承Collection接口的子接口Collection2,并添加一个默认方法
 * void forEachIf(Consumer<T> action, Predicate<T> filter)
 * 用来将action应用到所有filter返回true的元素上.
 */
public class 第9题 {

    public static void main(String[] args) {
    }

    static interface Collection2<T> extends Collection<T> {
        default void forEachIf(Consumer<T> action, Predicate<T> filter) {
//            stream().filter(filter).forEach(action);
            Collection.super.forEach(
                    t -> {
                        if (filter.test(t)) {
                            action.accept(t);
                        }
                    }
            );
        }
    }
}
